<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP versions 4 and 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       cake
 * @subpackage    cake.cake.libs.controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

/**
 * This is a placeholder class.
 * Create the same file in app/app_controller.php
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package       cake
 * @subpackage    cake.cake.libs.controller
 * @link http://book.cakephp.org/view/957/The-App-Controller
 */
class AppController extends Controller {

	var $components = array('Auth', 'Session');

	var $uses = array('Tab');

	function beforeFilter() {
		parent::beforeFilter();
		if (isset($this->params['admin']) && $this->params['admin'] == 1) {
			if ($this->Auth->user('role') != 'admin') {
				$this->redirect('/');
			} else {
				$this->layout = 'admin';
			}
		}
	}

	function __call($name, $args)
	{
		switch ($name) {
			case "get_user_tabs": {
				if (count($args) == 2) {
					return $this->get_user_tabs($args[0], $args[1]);
				} elseif (count($args) == 1) {
					return $this->get_user_tabs('id', $args[0]);
				} else {
					return $this->get_user_tabs('id', 'position');
				}
				break;
			}
		}
	}

	private function get_user_tabs($key, $val) {
		return $this->Tab->find('list', array(
				'fields' => array ( $key, $val),
				'conditions' => array(
						'user_id' => $this->Auth->user('id')
				)
		));
	}
}
